const { ccclass, executionOrder } = cc._decorator;

@ccclass
@executionOrder(-1)
export default class Game extends cc.Component {

    private updateManager: wx.UpdateManager;

    protected onLoad(): void {
        cc.game.on(cc.game.EVENT_SHOW, this.onShow, this);
        cc.game.on(cc.game.EVENT_HIDE, this.onHide, this);
        // this.checkUpdate();
        // wx.onError((res) => {
        //     console.log("onError: ", res.message);
        //     console.log(res.stack);
        // })
    }

    protected onEnable(): void {

    }

    protected onDisable(): void {

    }

    private onShow(data: any): void {
        console.log("onShow: ", data);
    }

    private onHide(): void {
        console.log("onHide: ");
    }


    private checkUpdate(): void {
        if (this.updateManager) {
            return;
        }
        this.updateManager = wx.getUpdateManager();

        this.updateManager.onCheckForUpdate(function (res) {
            // 请求完新版本信息的回调
            console.log("是否有新版本: ", res.hasUpdate);
        })

        this.updateManager.onUpdateReady(function () {
            wx.showModal({
                title: '更新提示',
                content: '新版本已经准备好，是否重启应用？',
                success(res) {
                    if (res.confirm) {
                        // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                        this.updateManager.applyUpdate()
                    }
                }
            })
        })

        this.updateManager.onUpdateFailed(function () {
            // 新版本下载失败
            console.log("新版本下载失败");
        })
    }
}
